void main(List<String> args) {
  // 列表相当于js中的数组
  // 但是如果不以泛型形式传入类型的话，一个List中可以同时存在任意类型的数据
  // 1. 定义数字列表
  List numList = [11, 22, 33, 44, 55, 66];

  // 2. 定义分类列表
  List categoryList = ['居家', '美食', '服饰'];

  // 3. 存储任意类型的数据
  List mixList = [
    '张三',
    18,
    true,
    ['李四', '王五'],
  ];

  // 4. 使用列表：查改增删
  List categories = ['居家', '美食', '服饰'];
  // 4.1 查询列表长度
  print(categories.length);
  // 4.2 查询指定的元素
  print(categories[1]);
  print(categories[categories.length - 1]);
  // 4.3 修改：列表[索引] = 新值
  categories[0] = '家电';
  // 4.4 新增：列表.add(新元素)、列表.addAll(新列表)
  categories.add('777');
  categories.addAll(['888', 999]);
  print(categories);
  // 4.5 指定位置添加：列表.insert(索引，内容)
  categories.insert(1, 998);
  categories.insertAll(2, ['nihao', 'suibian']);
  print(categories);
  // 4.6 删除：使用元素删除、使用索引删除
  categories.remove('美食');
  print(categories);
  categories.removeAt(0);
  print(categories);
  categories.removeLast();
  print(categories);
  categories.removeRange(0, 1); // 区间：[start, end)
  print(categories);
  List nums = [1, 2, 3, 4, 5, 6, 7];
  // dart 中没有 ===
  // 这里箭头函数体部分不能加{}
  nums.removeWhere((element) => element % 2 == 0);
  print(nums);
  // 4.7 遍历列表
  // 这里不能加 =>
  categories.forEach((item) {
    print(item);
  });
}
